import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import model.Arquero;
import model.Club;
import model.Defensor;
import model.Delantero;
import model.Mediocampista;
import model.Participante;
import model.Jugador;


public class elGranDT {

	public Map<String,Jugador> jugadores; 
	public Map<String,Club> clubs;
	
	public void generarJugadores(){
		this.jugadores = new HashMap();
		
		Jugador a1 = new Jugador("Abondancieri",new Arquero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("a1", a1);
		Jugador a2 = new Jugador("Bossio ",new Arquero(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("a2", a2);
		
		Jugador d1 = new Jugador("papa",new Defensor(),(Club)this.clubs.get("Velez"));
		this.jugadores.put("d1", d1);
		Jugador d2 = new Jugador("angeleri",new Defensor(),(Club)this.clubs.get("Estudiantes"));
		this.jugadores.put("d2", d2);
		Jugador d3 = new Jugador("roncaglia",new Defensor(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("d3", d3);
		Jugador d4 = new Jugador("Ibarra",new Defensor(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("d4", d4);
		Jugador d5 = new Jugador("Morel",new Defensor(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("d5", d5);
		
		Jugador m1 = new Jugador("Riquelme",new Mediocampista(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("m1", m1);
		Jugador m2 = new Jugador("Gallardo",new Mediocampista(),(Club)this.clubs.get("River"));
		this.jugadores.put("m2", m2);
		Jugador m3 = new Jugador("Bataglia",new Mediocampista(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("m3", m3);
		Jugador m4 = new Jugador("Ledesma",new Mediocampista(),(Club)this.clubs.get("SanLorenzo"));
		this.jugadores.put("m4", m4);
		Jugador m5 = new Jugador("Ahumada",new Mediocampista(),(Club)this.clubs.get("River"));
		this.jugadores.put("m5", m5);		
		
		Jugador del1 = new Jugador("Palermo",new Delantero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("del1", del1);
		Jugador del2 = new Jugador("Palacio",new Delantero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("del2", del2);
		Jugador del3 = new Jugador("Falcao",new Delantero(),(Club)this.clubs.get("River"));
		this.jugadores.put("del3", del3);
		Jugador del4 = new Jugador("Fabiani",new Delantero(),(Club)this.clubs.get("River"));
		this.jugadores.put("del4", del4);
		Jugador del5 = new Jugador("Biatri",new Delantero(),(Club)this.clubs.get("Boca"));
		this.jugadores.put("del5", del5);
	}
	
	public void generarClubs(){
		this.clubs = new HashMap();
		
		Club c1 = new Club("Boca");
		this.clubs.put("Boca",c1);
		Club c2 = new Club("River");
		this.clubs.put("River",c2);
		Club c3 = new Club("SanLorenzo");
		this.clubs.put("SanLorenzo",c3);
		Club c4 = new Club("Racing");
		this.clubs.put("Racing",c4);
		Club c5 = new Club("Estudiantes");
		this.clubs.put("Estudiantes",c5);
		Club c6 = new Club("Velez");
		this.clubs.put("Velez",c6);
	}
	
	public void vincularJugadoresClubs(){
		// vinculo a cada club con sus jugadores
		for (Iterator iter = this.jugadores.values().iterator(); iter.hasNext();) {
			Jugador jugador = (Jugador) iter.next();
			Club club = (Club)clubs.get(jugador.getClub().getNombre());
			club.getJugadores().add(jugador);
		}
	}
	
	public static void main(String[] args) {
		elGranDT campeonato = new elGranDT();

		// genero los clubes
		campeonato.generarClubs();
		
		// genero los jugadores
		campeonato.generarJugadores();
		
		campeonato.vincularJugadoresClubs();
			
		
		Participante p1 = new Participante("Pepe",1);
		p1.armarEquipoDummy(campeonato.jugadores);		

		p1.validarEquipo();
		
	}
	
	
	
	

}
